package leetcode.offer;

import entity.ListNode;
import org.junit.Test;

import java.util.List;

/**
 * @author LiDong
 * @version 1.0.0
 * @createTime 2021/11/11
 */
public class offer24 {

    /**
     * 定义一个函数，输入一个链表的头节点，反转该链表并输出反转后链表的头节点。
     * <p>
     *  
     * <p>
     * 示例:
     * <p>
     * 输入: 1->2->3->4->5->NULL
     * 输出: 5->4->3->2->1->NULL
     */

    @Test
    public void test() {
        ListNode node = new ListNode(1,new ListNode(2,new ListNode(3,new ListNode(4,new ListNode(5,null)))));
        reverseList(node);
    }


    public ListNode reverseList(ListNode head) {
        // 前驱、当前、后继
        ListNode pre = null,cur = head,next;
        while (cur != null){
            // 后继节点等于当前节点的后继
            next = cur.next;

            cur.next = pre;
            pre = cur;
            cur = next;
        }
        return pre;
    }


}
